//封装axios
import axios from 'axios';
import Cookies from "js-cookie";
// 创建axios 实例
const instance = axios.create({
    // baseURL: 'http://kumanxuan1.f3322.net:8001/',
    baseURL: '/api',
    timeout: 5000,// 请求时长 可选项
    headers: { 'Content-Type': 'application/json' } // post 请求需要设置请求头
});

// 跨域总结
// 1. 跨域情况  
// 设置 axios 中的 baseURL: 'http://kumanxuan1.f3322.net:8001/ 且不在vue.config.js配置代理
// 这种情况存在跨域 项目运行地址 http://localhost:5000/home  而你的请求地址 http://kumanxuan1.f3322.net:8001/home
// 如果返回数据说明后台设置了允许跨域访问，所以能正常返回数据，如果后台不设置允许，则返回不了数据

// 2. 设置跨域代理
// 在vue.config.js 中设置  proxy:{'/api':{target: 'http://kumanxuan1.f3322.net:8001/'}} 
// 当你项目请求数据时，network接口地址 http://localhost:5000/home,项目的url运行地址也是 http://localhost:5000 这样不存在跨域
//  当你在network 请求 http://localhost:5000的时候，target 代理到了http://kumanxuan1.f3322.net:8001/ 
// 你先请求数据带本地 http://localhost:5000，然后本地服务器http://localhost向远程服务器http://kumanxuan1.f3322.net:8001请求数据，然后数据再返回



// 请求拦截器
instance.interceptors.request.use(function (config) {
    // 所有请求发送前逻辑修改 一般用于token设置
    // console.log(11, config);
    // console.log(Cookies.get('token'));
    // 如果有token  就在headers 中设置token
    if (Cookies.get('token')) {
        config.headers['X-Nideshop-Token'] = Cookies.get('token')
    }
    return config;
}, function (error) {
    // Do something with request error
    return Promise.reject(error);
});

// 响应拦截器
instance.interceptors.response.use(function (response) {
    //所有的接口响应成功后，逻辑处理 一般用于根据状态码做一些处理
    return response;
}, function (error) {
    // Do something with response error
    return Promise.reject(error);
});

export default instance